#ifndef CONFIGURATION_H
#define CONFIGURATION_H

#include <string>
#include <iostream>
#include <yaml-cpp/yaml.h>


class Configuration {
public:
    Configuration(const Configuration&) = delete;
    Configuration& operator=(const Configuration&) = delete;

    static Configuration& getInstance();

    bool loadConfig(const std::string& file_name);

    std::string getMysqlHost() const;
    std::string getMysqlDataBases() const;
    std::string getMysqlUser() const;
    std::string getMysqlPassword() const;

    std::string getS3AK() const;
    std::string getS3SK() const;
    std::string getS3Region() const;
    std::string getS3endpoint() const;
    std::string getS3BucketName() const ;

private:
    Configuration() = default;
    ~Configuration() = default;
    YAML::Node config;
};
Configuration& getGlobalConfiguration();

#endif // CONFIGURATION_H
